package com.proveedor.action;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.proveedor.business.ProveedorDelegator;
import com.proveedor.form.RodamientoForm;

import entities.ItemMateriaPrimaRodamientoVO;
import entities.MateriaPrimaVO;
import entities.RodamientoVO;

public class RodamientoAction extends Action{

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		RodamientoForm rodamientoForm = (RodamientoForm) form;
		String accion = rodamientoForm.getAccion();
		String forward = "display";
		boolean guardarExitoso = false;
		cargarDatosPagina(rodamientoForm,request,response);
		if("guardar".equals(accion)){
			Float precio = new Float("0");
			Integer cantFilas = 0;
			try{precio=Float.parseFloat(rodamientoForm.getPrecio());}catch(Exception e){precio=new Float("0");}
			RodamientoVO rodamiento = new RodamientoVO(rodamientoForm.getCodigoRodamiento(),rodamientoForm.getCaracteristica(),rodamientoForm.getMarca(),rodamientoForm.getOrigen()
					,rodamientoForm.getTipo(),"",precio);
			try{cantFilas=Integer.parseInt(rodamientoForm.getCantFilas());}catch(Exception e){cantFilas=0;}
			List<ItemMateriaPrimaRodamientoVO> listaMateriasPrima = new ArrayList<ItemMateriaPrimaRodamientoVO>();
			for(int i=1;i<=cantFilas;i++){
				String codMateriaPrima = request.getParameter("codMateriaPrima"+i);
				String descMateriaPrima = request.getParameter("descMateriaPrima"+i);
				String cantidadString = request.getParameter("cantidadMateriaPrima"+i);
				Integer cantidad = 0;
				try{cantidad=Integer.parseInt(cantidadString);}catch(Exception e){cantidad=0;}
				ItemMateriaPrimaRodamientoVO itemMPRVO = new ItemMateriaPrimaRodamientoVO();
				MateriaPrimaVO materiaPrima = new MateriaPrimaVO();
				materiaPrima.setCodigo(codMateriaPrima);
				materiaPrima.setDescripcion(descMateriaPrima);
				itemMPRVO.setCantidad(cantidad);
				itemMPRVO.setMateriaPrimaVO(materiaPrima);
				listaMateriasPrima.add(itemMPRVO);
			}
			rodamiento.setListaMateriaPrima(listaMateriasPrima);
			ProveedorDelegator.getInstance().nuevoRodamiento(rodamiento);
			if(guardarExitoso)
				forward = "cargaExitosa";
			else
				forward = "cargaNoExitosa";
		}
		return mapping.findForward(forward);
	}

	private void cargarDatosPagina(RodamientoForm rodamientoForm,
			HttpServletRequest request, HttpServletResponse response) {
		
		List<MateriaPrimaVO> listaMateriasPrima = new ArrayList<MateriaPrimaVO>();
//		MateriaPrimaVO matPrimaVO = new MateriaPrimaVO();
//		matPrimaVO.setCodigo("1");
//		matPrimaVO.setDescripcion("Acero");
//		listaMateriasPrima.add(matPrimaVO);
//		matPrimaVO = new MateriaPrimaVO();
//		matPrimaVO.setCodigo("2");
//		matPrimaVO.setDescripcion("Hierro");
//		listaMateriasPrima.add(matPrimaVO);
//		matPrimaVO = new MateriaPrimaVO();
//		matPrimaVO.setCodigo("3");
//		matPrimaVO.setDescripcion("Ruleman");
//		listaMateriasPrima.add(matPrimaVO);
		listaMateriasPrima = ProveedorDelegator.getInstance().getMateriasPrima();
		rodamientoForm.setListaMateriasPrima(listaMateriasPrima);
		
	}

}
